#ifndef FILEIO_H
#define FILEIO_H 1

#include <string>

#include "Model/BuildingMap.h"

/**
 * \namespace FileIO
 * \brief File Save/Load procedures
 *
 * This namespace contains functions for saving/loading files. 
 * \todo Add support for XML _and_ binary + zipping
 */

namespace FileIO 
{
/**
 * Loads a BuildingMap file into the object given by reference.
 * \param map Reference to the BuildingMap object to load
 * \param filename path to the file
 */
void loadBuildingMap(Model::BuildingMap& map, std::string filename);

/**
 * Saves a BuildingMap object given by reference to a file.
 * \param map Reference to the BuildingMap object to save
 * \param filename path to the file
 */
void saveBuildingMap(Model::BuildingMap& map, std::string filename);

/**
 * Loads a Mesh file into the object given by reference.
 * \param map Reference to the Mesh object to load
 * \param filename path to the file
 */
void loadMesh(Model::Mesh& mesh, std::string filename);

/**
 * Saves a Mesh object given by reference to a file.
 * \param map Reference to the Mesh object to save
 * \param filename path to the file
 */
void saveMesh(Model::Mesh& mesh, std::string filename);
}

#endif
